Modbus协议的固有安全问题有哪些
Modbus协议的固有安全问题有:
缺乏认证:认证的目的是保证收到的信息来自合法的用户,未认证用户向设备发送的控制命令不会被执行。在Modbus协议的通信过程中,没有任何认证方面的相关定义,攻击者只需要找到一个合法的地址就可以使用功能码并建立一个Modbus通信会话,从而扰乱整个或者部分控制过程。
缺乏授权:授权用来保证不同的特权操作由拥有不同权限的认证用户来完成,这样可以大大降低误操作与内部攻击的概率。目前,Modbus协议没有基于角色的访问控制机制,也没有对用户进行分类,没有对用户的权限进行划分,这会导致任意用户可以执行任意功能。
缺乏加密:加密可以保证通信过程中双方的信息不被第三方非法获取。在Modbus协议的通信过程中,地址和命令全部采用明文传输,因此数据可以很容易地被攻击者捕获和解析,为攻击者提供便利。
缓冲区溢出漏洞:缓冲区溢出是指在向缓冲区内填充数据时超过了缓冲区本身的容量,导致溢出的数据覆盖在合法数据上,这是在软件开发中最常见也是非常危险的漏洞,可以导致系统崩溃,或者被攻击者用来控制系统。Modbus系统开发者大多不具备安全开发知识,这样就会产生很多的缓冲区溢出漏洞,一旦被恶意者利用就会导致严重的后果。
功能码滥用:功能码是Modbus协议中的一项重要内容,几乎所有的通信都包含功能码。目前,功能码滥用是导致Modbus网络异常的一个主要因素。例如,不合法报文长度、短周期的无用命令、不正确的报文长度、确认异常代码延迟等都有可能导致拒绝服务攻击。
Modbus协议的固有安全问题的解决措施如下:
从源头开始:工控网络漏洞,很大一部分是其实现过程出现的漏洞。如果从源头开始控制,从Modbus 系统的需求设计、开发实现、内部测试和部署等阶段,全生命周期的介入安全手段,融入安全设计、安全编码以及安全测试等技术,可以极大地消除安全漏洞,降低整个Modbus 系统的安全风险。
异常行为检测:异常行为代表着可能发生威胁,不管是有没有攻击者,因此开发针对Modbus 系统的专用异常行为检测设备可以极大提高工控网络的安全性。针对Modbus 系统,首先要分析其存在的各种操作行为,依据“主体,地点,时间,访问方式,操作,客体”等行为描述成一个六元组模型; 进而分析其行为是否属于异常; 最终决定采取记录或者报警等措施。
安全审计:Modbus的安全审计就是对协议数据进行深度解码分析,记录操作的时间、地点、操作者和操作行为等关键信息,实现对Modbus 系统的安全审计日志记录和审计功能,从而提供安全事件爆发后的时候追查能力。
使用网络安全设备:使用入侵防御和防火墙等网络安全设备。防火墙是一个串行设备,通过设置,只允许特定的地址访问服务端,禁止外部地址访问Modbus 服务器,可以有效的防止外部入侵; 入侵防御设备可以分析Modbus协议的具体操作内容,有效地检测并阻止来自内部/外部的异常操作和各种渗透攻击行为,对内网提供保护功能。